<?php

namespace App\Http\Controllers\RBAC;

use App\Http\Controllers\admin\AdminPlatformController;
use App\Http\Model\Permission_group;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use Illuminate\Routing\Route;

/**
 * Class PermissionController 权限分组控制器
 * @package App\Http\Controllers\RBAC
 */
class PermissionController extends AdminPlatformController
{
    /** 属性声明 */
    /** 方法声明 */
    /**
     * 添加权限分组
     */
    public function permission_add(Request $req,Route $route){
        /** 获取表单数据 */
        $input = Input::except('_token');
        if(!$input){
            return view('admin.rbac.group.rbacAdd');
        }
        /** 处理数据验证 */
        /** 执行添加数据 */
        if(Permission_group::insert($input)){
            /** 跳转权限分组列表 */
            return redirect('manager/rbac/permission/permission_list');
        }
        return back()->with('errors','数据添加失败!');
    }

    /**
     * 权限分组集合列表展示
     */
    public function permission_list(){
        /** 获取权限分组集合 */
        $permission_list = Permission_group::orderBy('sort_order','desc')
            -> get();
        return view('admin.rbac.group.rbacList',compact('permission_list'));
    }

    /**
     * 编辑权限分组视图加载
     */
    public function permission_edit($pid){
        if(!$input = Input::except('_token')){
            /** 获取该分组信息 */
            $data = Permission_group::find($pid);
            if(!$data){
                return back()->with('errors','非法id传递!');
            }
            return view('admin.rbac.group.rbacEdit',compact('data'));
        }
        /** 处理编辑数据 */
        if(Permission_group::where('pid',$pid)->update($input)){
            /** 编辑成功 跳转列表页 */
            return redirect('manager/rbac/permission/permission_list');
        }
        return back()->with('errors','数据编辑失败!');

    }

    /**
     * 删除权限分组
     */
    public function permission_del($pid){
        //检测该分组是否有角色

        /**
         * 执行删除
         */
        if(Permission_group::where('pid',$pid)->delete()){
            return redirect('manager/rbac/permission/permission_list');
        }
        return back()->with('errors','数据删除失败!');
    }
}
